Service based event planning

ABSTRACT

Services are queried for resources to be used at an event. For example, service based event planning may be used in conjunction with directory services, social networking services, custom databases, web services, email servers and address book services. Service based event planning may apply constraints to the resources obtained over services. The service based event planning may also be used in conjunction with email or other messaging services to share representations of events with attendees or other interested parties. Both recipients and senders of the event may be able to dynamically modify event details in event representations.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of and claims priority to U.S. patentapplication Ser. No. 13/174,201 titled SERVICE BASED EVENT PLANNING,which was filed on Jun. 30, 2011 and issued as U.S. Pat. No. 8,924,490on Dec. 30, 2014 and which is incorporated by reference in its entirety.

BACKGROUND

To be successful, events need to be planned and representations of theevents may be shared. When organizing an event, various resources,including equipment, rooms, layout, and other items may need to begathered and the details of these items coordinated along with inviteesin order to make the event successful. The resources for an event may begathered from disparate source services, such as, for example, fromsocial networking sites, directory services, internet and/or intranetweb resources, and other sources. Each resource may have timingconstraints on availability. After the event is planned, the details ofthe event may need to be distributed and shared to attendees or otherparticipants (such as people helping to setup the event) in order tomake the event successful. Representations of events may be generated,and when the representations are complete, descriptions andillustrations of events may be sent to attendees or other interestedparties.

SUMMARY

The following presents a simplified summary of the disclosure in orderto provide a basic understanding to the reader. This summary is not anextensive overview of the disclosure and it does not identifykey/critical elements of the invention or delineate the scope of theinvention. Its sole purpose is to present some concepts disclosed hereinin a simplified form as a prelude to the more detailed description thatis presented later.

Embodiments herein provide event planning based on receiving informationitems from services. In one embodiment, events may be planned byselecting attendees, furniture, layout of a room, computer equipment aswell as time and calendar information about the event. The informationmay be modeled using a graphical user interface to generate arepresentation of an event. The representation of the event may includegraphics and/or text. The representation of the event may be sent toattendees.

Many of the attendant features will be more readily appreciated as thesame become better understood by reference to the following detaileddescription considered in connection with the accompanying drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

Like reference numerals are used to designate like parts in theaccompanying drawings.

FIG. 1 is a block diagram of an example operating environment forimplementing embodiments of the invention.

FIG. 2 is a block diagram of an example computing device forimplementing embodiments of the invention.

FIG. 3 is a flow chart illustrating a computer-implemented method forplanning an event using service based resources and then distributingdetails about the event.

FIG. 4 illustrates a graphical user interface for planning an event in ameeting room using resources from services.

FIG. 5 illustrates a graphical user interface for planning a socialevent using online services.

FIG. 6 illustrates a graphical user interface for sharing details of anevent with attendees and/or other participants.

DETAILED DESCRIPTION

The detailed description provided below in connection with the appendeddrawings is intended as a description of present examples and is notintended to represent the only forms in which the present examples maybe constructed or utilized. The description sets forth functions of theexamples and sequence of steps for constructing and operating theexamples. However, the same or equivalent functions and sequences may beaccomplished by different examples.

FIG. 1 shows an embodiment of an operating environment 100 forimplementing embodiments of the invention. FIG. 1 and the followingdiscussion are intended to provide a brief, general description of asuitable computing environment to implement embodiments of theinvention. The operating environment 100 is only one example of asuitable operating environment. FIG. 1 illustrates an event planningsystem on one or more servers, but it is to be appreciated that theevent planning system may also just execute on one or more clientcomputing systems, or still further, it may execute on a combination ofclient and server computing systems.

Referring to FIG. 1, operating environment 100 includes a network 102.Network 102 may be the internet, or network 102 may comprise anintranet, and the like. An event planning system 112 may communicatewith computing devices 104, 105, and 106 over network 102. An examplecomputing device is described below in connection with FIG. 2. Computingdevice 104 may include any type of personal computer, such as a desktopcomputer, mainframe computer, and the like. Tablet computing device 105includes slate devices that may be personally carried and used forbrowsing online services. Mobile computing device 106 may include smartphones, or other mobile computers. Each computing device 104-106 may beused to view representations of events.

Event planning system 112 is a server or servers configured to provideevent planning services online. Event planning system 112 may sendbinary data, XML data, HTML, or other markup language to the clientdevices 104-106 via network 102. Event planning system 112 is configuredto communicate with an email services and/or address book services 124.As such, event planning system 112 may access availability informationabout attendees to the events as well as people and resources availablefor events. Event planning system 112 may also be in communication witha custom data 122 and directory services 120. The directory services 120may provide further information about resources such as, for example,meeting rooms, employees, equipment, etc. Still further, custom data 122may be populated from data on the web such as from web sites or webportals 124 or from social networking sites 128.

Event planning system 112 may be in direct communication with web portalservices 124 or social networking sites 128 or may use custom data 122to hold or cache information. Event planning system 112 may store and/orretrieve information about events on a file on a server, with emailservices, or may store and/or retrieve data in a database. For example,event planning system 112 may store and/or retrieve event details incustom data 122. Custom data 122 may be implemented with one or morefiles, database, or other storage mechanism.

FIG. 2 shows an embodiment of a computing device 200 for implementingone or more embodiments of the invention. FIG. 2 illustrates a computingdevice 200 that may display event representations on the computingdevice 200 itself or send data representations of events to anothercomputing device. In one embodiment, computing device 200 may be used assystem 112 of FIG. 1. In another embodiment, computing device 200 may beused as a client system that generates representations of events usingresources and/or constraints gathered from services. In its most basicconfiguration, computing device 200 typically includes at least oneprocessing unit 202 and memory 204. Depending on the exact configurationand type of computing device, memory 204 may be volatile (such as RAM),non-volatile (such as ROM, flash memory, etc.) or some combination ofthe two. Event planning application 206 may store data and instructionsin memory 204 and use processing unit 202 to execute computerinstructions.

Additionally, device 200 may also have additional features and/orfunctionality. For example, device 200 may also include additionalstorage (e.g., removable and/or non-removable) including, but notlimited to, magnetic or optical disks or tape. Such additional storageis illustrated in FIG. 2 by storage 208. In one embodiment, computerreadable instructions to implement embodiments of the invention may bestored in storage 208. Storage 208 may also store other computerreadable instructions to implement an operating system, an applicationprogram (such as an event planning application), and the like.

Embodiments of the invention will be described in the general context of“computer readable instructions” being executed by one or more computingdevices. Computer readable instructions may be distributed via computerreadable media (discussed below). Computer readable instructions may beimplemented as program modules, such as functions, objects, applicationprogramming interfaces (APIs), data structures, and the like, thatperform particular tasks or implement particular abstract data types.Typically, the functionality of the computer readable instructions maybe combined or distributed as desired in various environments.

The term “computer readable media” as used herein includes computerstorage media. “Computer readable storage media” includes volatile andnonvolatile, removable and non-removable media implemented in any methodor technology for storage of information such as computer readableinstructions, data structures, program modules, or other data. Memory204 and storage 208 are examples of computer storage media. Computerreadable storage media includes, but is not limited to, RAM, ROM,EEPROM, flash memory or other memory technology, CD-ROM, digitalversatile disks (DVDs) or other optical storage, magnetic cassettes,magnetic tape, magnetic disk storage or other magnetic storage devices.“Computer readable storage media” does not consist of a “modulated datasignal.” Any such computer storage media may be part of device 200.

The term “computer readable media” may include communication media.Device 200 may also include communication connection(s) 212 that allowthe device 200 to communicate with other devices, such as with othercomputing devices through network 220. Communication media typicallyembodies computer readable instructions, data structures, programmodules or other data in a modulated data signal such as a carrier waveor other transport mechanism and includes any information deliverymedia. The term “modulated data signal” means a signal that has one ormore of its characteristics set or changed in such a manner as to encodeinformation in the signal. By way of example, and not limitation,communication media includes wired media such as a wired network ordirect-wired connection, and wireless media such as acoustic, radiofrequency, infrared, and other wireless media.

Device 200 may also have input device(s) 214 such as keyboard, mouse,pen, voice input device, touch input device, gesture detection device,laser range finder, infra-red cameras, video input devices, and/or anyother input device. Input device(s) 214 may include input received fromgestures or by touching a screen. For example, input device(s) 214 maydetect swiping the screen with a finger, or one or more gesturesperformed in front of sensors (e.g. MICROSOFT KINECT). Output device(s)216 includes items such as one or more displays, speakers, printers.

Those skilled in the art will realize that computer readableinstructions may be stored on storage devices that are distributedacross a network. For example, a computing device 230 accessible vianetwork 220 may store computer readable instructions to implement one ormore embodiments of the invention. Computing device 200 may accesscomputing device 230 and download a part or all of the computer readableinstructions for execution. Alternatively, computing device 200 maydownload pieces of the computer readable instructions, as needed, orsome instructions may be executed at computing device 200 and some atcomputing device 230. Display representations may be sent from computingdevice 200 to computing device 230 or vice versa. Those skilled in theart will also realize that all or a portion of the computer readableinstructions may be carried out by a dedicated circuit, such as aDigital Signal Processor (DSP), programmable logic array, and the like.

Business Event Planning

Embodiments of the invention provide a mechanism for planning andsharing event representations using services. Event representations mayinclude diagrams/layouts of events as well as descriptions of detailsabout the events.

FIG. 3 illustrates a computer-implemented method for planning an eventusing service based resources and then distributing details. At initialstage 300, an event to be planned is received. For example, an event maybe received from automation or by a user.

At step 302, a type of event and/or other parameters are selected. Forexample, types of event may include a corporate meeting, a social eventsuch as a speech or a wedding. Other parameters may be received thatconstrain the event. For example, in step 302, a date and time for theevent may be selected.

At step 304, based on the type of event, the computer-implemented methodmay query disparate data sources for resources that are available forthe type of event. At step 305, constraints associated with theresources may be queried and received. For example, the resources may beavailable based on timing and schedule for the event. As one example, ameeting room may only be available during a certain date. At step 306,the event planner user interface may be populated based on resourcessuitable for the type of event and suitable for the scheduling of theevent. At step 308, a view may be displayed with the resources andconstraints available.

Still referring to FIG. 3, at step 310, indications of resources usedfor the event are received. For example, a user may provide indicationsby dragging and dropping resources on to a depiction of the venue forthe event. At step 312, an indication of one or more attendees to theevent, or other participants, may be received. A user may continuouslymodify resources and/or attendees in step 310 and 312, and the eventplanner application may update the display representation of the eventbased on the received modifications in step 308. As such, steps 308, 310and 312 are illustrated as being part of a loop that may be executed anynumber of times. It is to be appreciated that other steps may also beperformed repeatedly. As one example, there could be multiple queriesfor resources/constraints.

At step 314, the event details, including resources, timing, and thelike may be persisted to a file, a database, or other storage. At step316, the details of the event, including any depiction of the event maybe forwarded to any one of the attendees.

The computer-implemented method may be operated in any software and/orhardware. As a first example, the computer-implemented method may be anoption in a drawing program that interoperates with services, includingdirectory services, custom databases, as well as calendar software suchas email servers or address book servers. As one example, a drawingprogram could be MICROSOFT VISIO. In another embodiment, thecomputer-implemented method may be operated in calendar or emailsoftware application that allows for planning events. As an example, acalendar software application could be MICROSOFT OUTLOOK.

By way of further illustration of the computer-implemented methoddepicted by FIG. 3, an example usage may be described. The event plannersystem may receive an indication of a type of event in step 302. Forexample, a business event type may be selected. At step 304, in responseto the type of the event, the event planner may determine a firstservice to query for a first resource at step 304. For example, adirectory service may be queried for possible meeting room resources. Atstep 306, event planner may also query and receive one or moreconstraints associated the resource. At step 306 the event planner ispopulated with received resources and constraints, and at step 308 arepresentation of the event is displayed. At step 310, an indicationthat a first instance of a first resource is present at the event may bereceived. For example, this may occur if a user drags an instance of theresource to the display representation of the event. At step 314 thefirst instance of the first resource may be displayed at a location inassociation with the event.

As described previously, the computer-implemented method may use anycombination of services to populate resources and/or constraints of theresources available for an event. For example the first service in theexample may be a directory service, a web service, a social networkingservice or an address book listing attendees.

After the event has been planned, a user may save the event in step 314.In addition, a user may send a representation of the event via email toone or more participants. Participants may include attendees or thosehelping with logistics of the event. A feature of the event planner mayinclude the ability to modify details of the event in an email program.Depending on permissions, either a sender or receiver of an email maymodify details about an event. For example, a user may modify anattendee in the event in email, before sending the event representationout. Under those circumstances, the event planner data may be saved orupdated when a resource instance is modified in the event planning.Details of the event may be saved in a database or file.

As previously described, the event planner may receive one or moreindications of constraints associated with the resources of an event.For example, constraints may be received over XML web services, viatext, via binary data exchange, or other network protocols. Theconstraints may limit the use of resources in event planning. Forexample, constraints may include availability information of resources,such as dates/times when an attendee may be able to attend an event, oras another example, the locations in which an attendee can attend duringcertain timeframes. As yet another example, services may indicate alimited quantity of a resource. For example, a directory service mayindicate that only one resource of a certain type is available. Theevent planner method may include modifying details of the event based onconstraints associated with the event, such as by modifying the date ofthe event. The event planner method may also include modifyingresources, such as facilities of the event.

The details of the event may be displayed on the local computer ordisplayed remotely on a client device. If displayed remotely, arepresentation of the event may be sent using HTML, XML, other markuplanguages, or binary data.

FIG. 4 illustrates a graphical user interface for planning a meetingevent. The meeting may be a physical meeting between people in a roomor, in another embodiment, an online meeting between avatarsrepresenting people. User interface 400 illustrates a business eventplanner user interface. Toolbox 404 may comprise various resources thatmay be employed in the planning user interface 400. For example,category 406 includes devices that may be used in the meeting event. Asan exemplary device, smart phone 408, personal computer 410, tabletcomputer 412 and laptop computer 414 may be used by any attendees. Otherequipment may include items such as a projector 416 and projectionscreen 418. In addition, toolbox 404 may comprise attendees that attendthe event. For example, possible attendees 420 and 422 are shown. Asanother example category, furniture in the meeting event may bedepicted. For example, chair 424 and plant 426 are depicted. Categoriesmay also include a snacks section that includes beverage 428 and cutlery430. The items within the toolbox may be dragged from the toolbox 404and dropped onto the user interface 400. The location of the drop pointmay indicate where in the event the organizer wishes the item to belocated at the time of the event. In an alternative, items in toolbox404 may be double-clicked, and an instance of the resource may appear inthe user interface 400. A user may then drag the resource to the desiredfinal location.

The resources to be used in the user interface 400 may be populated froma local file of resources, or as described previously, the resources maybe dynamically populated from various data sources and network services.For example, the category 406 may be dynamically populated from adirectory service that may maintain devices available within anenterprise. Similarly, equipment may be listed from a directory service,a custom database or other source. Attendees or other participants maybe retrieved from an email address book service, an active directory, adatabase, a social networking service, or other network service.Furniture, snacks or other categories of resource may be retrieved froma custom database, directory service or other data source.

Still referring to FIG. 4, business event planner user interface 400shows instances of resources on the event planning view representation.More than one instance of a resource may be present on a view. Forexample, FIG. 4 illustrates a first instance of a chair 402 and a secondinstance of a chair 432. The planned position of a person 423 is shown.Instances of a tablet personal computer 409, personal computer 413, alaptop 415 and mobile device 419 are depicted. Instances of resources onan event representation may be moved around the user interface 400 toindicate the desired position of the resource during an event. As oneexample, a user may move resources around a screen using a mouse, atouch from a finger or stylus, or other pointing device. In addition,instances of resources may be copied and pasted in the view indicatingthat another instance of the resource is present.

The instances of resources may be constrained via services. For example,a directory service may restrict how many instances of a person canappear in a view. As an example, a constraint may exist such that onlyone instance of a person may be placed on the view. The constraints maybe customized locally on the event planning view computer, or they maybe downloaded from any one of the network services in conjunction withthe resources or they may be downloaded as separate items to theresources.

FIG. 5 illustrates a graphical user interface for planning a socialevent using online services. In the example of FIG. 5, a speaking eventis planned. Social events may include such event types as speakingevents, weddings, trips to a restaurant, vacations, a church or socialclub event, a picnic, and the like. Toolbox 504 illustrates disparatetypes of resources gathered from network services such as resourcesgathered from the web, such as particular kinds of screens 516 and rowsof seating 518. Any network provider may provide resources via XML webservices, web pages, or other online sharing mechanisms. Category 509illustrates resources obtained from a public directory service. In theexample of FIG. 5, projector resource 520 and computer 522 aredisplayed. Social attendees 524 and 526 illustrate possible attendeesgathered from a social networking site.

The computer-implemented event planning application may employ logic toparse details about people from the format shared out by the socialnetworking site or the social networking site may adhere to a standardfor sharing out resources. FIG. 5 also illustrates attendees 528 and 530in the toolbox. Corporate attendees 528 and 530 may be located from adirectory service (e.g. MICROSOFT ACTIVE DIRECTORY) or from a corporateenterprise address book associated with an email server (e.g. MICROSOFTEXCHANGE SERVER) or other service.

In FIG. 5, instances of projector resource 520 have been placed on theevent planner view as instances 520 and 522. Instances of seating 518are shown as 530. Instance 524 may be an instance of corporate attendee530. Instances 526 and 528 illustrate instances of resource screen 516.

FIG. 6 illustrates distributing or sharing a view of the event withother participants or attendees. As an example, the event representationmay be sent via a mail computer program, shared out on the web, placedon a social networking site, or otherwise shared to a community. Userinterface 600 includes a user interface for the appointment regardingthe event. User interface 600 may provide save functionality 620 forsaving the event as well as timing of the event. Details may be saved toa database, a file, or other persistence form.

Still referring to FIG. 6, Delete functionality 622 may allow fordeleting a planned event. Appointment 624 may allow for modification ofthe event timing details, including the day and time of the event. Theevent may be recurring, in which case appointment functionality 624 mayallow for specification of recurrence details such as the recurring dayof the week, the recurring date or other repeated schedule details.Attendees' functionality 626 may allow for the attendees or participantsto receive the event details. Attendees' functionality 626 mayautomatically populate using attendees associated with the event.Modification of the list of attendees via attendee functionality 626 maymodify the attendees depicted and included in the event view 608. Sendfunctionality 628 may send the details of the event to a list ofattendees or participants of the event.

FIG. 6 also illustrates a view 608 that was created for the event usingservice based functionality. A user may be able to modify instances ofresources within the view. For example, a user may be able to doubleclick an instance of an attendee 609 and modify the properties of theinstance of the resource, such as the identity of the resource. Theevent planning application may share out, via the web, email, socialnetworking sites or other sharing mechanisms, the event representationthat includes the location of the attendees and resources associatedwith the event.

The event representation, or part of the event representation may bedynamic (allowing modification) or static (no modification possible). Bybeing dynamic, a sender and/or recipient of the shared view of the eventmay be able to modify resources and/or attendees. The organizer orsender of the event representation may be able to set permissions thatspecify the level of modifications that are possible by each recipient.In addition, the sender or organizer may be able to set privacy levelsassociated with the event representation.

Various operations of embodiments of the present invention are describedherein. In one embodiment, one or more of the operations described mayconstitute computer readable instructions stored on computer readablemedia, which if executed by a computing device, will cause the computingdevice to perform the operations described. The order in which some orall of the operations are described should not be construed as to implythat these operations are necessarily order dependent. Alternativeordering will be appreciated by one skilled in the art having thebenefit of this description. Further, it will be understood that not alloperations are necessarily present in each embodiment of the invention.

The above description of embodiments of the invention, including what isdescribed in the Abstract, is not intended to be exhaustive or to limitthe embodiments to the precise forms disclosed. While specificembodiments and examples of the invention are described herein forillustrative purposes, various equivalent modifications are possible, asthose skilled in the relevant art will recognize in light of the abovedetailed description. The terms used in the following claims should notbe construed to limit the invention to the specific embodimentsdisclosed in the specification. Rather, the following claims are to beconstrued in accordance with established doctrines of claiminterpretation.

What is claimed is:
 1. A computer system comprising: a processor forexecuting computer readable instructions, and memory storing computerreadable instructions configured to perform a method comprising:receiving an indication to plan an event; receiving parameters includingan event type and an event time; in response to the event type, queryinga service for at least one physical location available during the eventtime; receiving, from the service, information about resources availableat the at least one physical location; displaying a graphical userinterface depicting a representation of the at least one physicallocation and a toolbox depicting instances of the available resources;receiving a selection of an instance of an available resource; andupdating the graphical user interface to display the instance of theselected available resource within the representation of the at leastone physical location.
 2. The computer system of claim 1, wherein thememory further stores computer readable instructions configured toaccess information related to attendees to the event.
 3. The computersystem of claim 2, wherein the information related to the attendees isaccessed from a social networking service.
 4. The computer system ofclaim 2, wherein the memory further stores computer readableinstructions configured to: depict instances of available attendees inthe toolbox; receive a selection of an instance of an availableattendee; and update the graphical user interface to display theinstance of the selected available attendee within the representation ofthe at least one physical location.
 5. The computer system of claim 2,wherein the memory further stores computer readable instructionsconfigured to distribute the representation of the at least one physicallocation including the instance of the selected available resource toone or more of the attendees.
 6. The computer system of claim 1, whereinthe event is a business event.
 7. The computer system of claim 1,wherein the event is a social event.
 8. The computer system of claim 1,wherein the instances of the available resources depict equipment to beused during the event.
 9. The computer system of claim 1, wherein theinstances of the available resources depict furniture to be used duringthe event.
 10. The computer system of claim 1, wherein the instances ofthe available resources depict food to be served during the event.
 11. Acomputer-implemented method, comprising: receiving an indication to planan event; receiving parameters including an event type and an eventtime; in response to the event type, querying a service for at least onephysical location available during the event time; receiving, from theservice, information about resources available at the at least onephysical location; displaying a graphical user interface depicting arepresentation of the at least one physical location and a toolboxdepicting instances of the available resources; receiving a selection ofan instance of an available resource; and updating the graphical userinterface to display the instance of the selected available resourcewithin the representation of the at least one physical location.
 12. Thecomputer-implemented method of claim 11, further comprising: accessinginformation related to attendees to the event.
 13. Thecomputer-implemented method of claim 12, wherein the information relatedto the attendees is accessed from a social networking service.
 14. Thecomputer-implemented method of claim 12, further comprising: depictinginstances of available attendees in the toolbox; receiving a selectionof an instance of an available attendee; and updating the graphical userinterface to display the instance of the selected available attendeewithin the representation of the at least one physical location.
 15. Thecomputer-implemented method of claim 12, further comprising:distributing the representation of the at least one physical locationincluding the instance of the selected available resource to one or moreof the attendees.
 16. The computer-implemented method of claim 11,wherein the event is a business event.
 17. The computer-implementedmethod of claim 11, wherein the event is a social event.
 18. Thecomputer-implemented method of claim 11, wherein the instances of theavailable resources depict one or more of: equipment to be used duringthe event, furniture to be used during the event, and food to be servedduring the event.
 19. A computer readable storage device storingcomputer readable instructions that, when executed by a computer, causethe computer to perform a method comprising: receiving an indication toplan an event; receiving parameters including an event type and an eventtime; in response to the event type, querying a service for at least onephysical location available during the event time; receiving, from theservice, information about resources available at the at least onephysical location; displaying a graphical user interface depicting arepresentation of the at least one physical location and a toolboxdepicting instances of the available resources; receiving a selection ofan instance of an available resource; and updating the graphical userinterface to display the instance of the selected available resourcewithin the representation of the at least one physical location.
 20. Thecomputer readable storage device of claim 19, further storing computerreadable instructions configured to: access information related toattendees to the event; depict instances of available attendees in thetoolbox; receive a selection of an instance of an available attendee;and update the graphical user interface to display the instance of theselected available attendee within the representation of the at leastone physical location.